package core

import (
	"context"
	"golang.org/x/time/rate"
	"time"
)

// Limit
// @Description: 接口限流
type Limit struct {
	Url     string        //限流接口地址
	Rate    int64         //每秒阈值
	limiter *rate.Limiter //限流器
}

func test() {
	//转化成每秒生产多少个令牌
	rateNum := rate.Every(time.Millisecond * 100)
	//令牌桶最大值
	maxNum := 1000
	//创建限流器
	limiter := rate.NewLimiter(rateNum, maxNum)
	ctx, _ := context.WithTimeout(context.Background(), time.Second*100)
	//消费一个令牌 如果令牌不足会阻塞等待
	limiter.Wait(ctx)
	//是否还有令牌可用 没有返回false
	limiter.Allow()

}
